package model;

import java.awt.Color;
import java.util.HashMap;

/**
 * 
 * @author christopher
 * Defines core functionality of the State
 */
public interface IState {
	
	// Move a piece
	public int movePieceAt(Player player, int index, int moves);
	
	// Removes a player
	public void removePlayer(Player player);
	
	// Changes color of a player
	public void changeColor(Color color);
	
	// Add a turn to the turncounter
	public void updateTurnCounter(Player player);
	
	// Add time 
	public void updateTimeCounter(Player player, double time);
	
	// Set the player whose current turn it is
	public void setCurrentPlayer(Player player);
	
	// Get players currently in the game
	public HashMap<Integer, Player> getPlayers();
	
	// Get current player
	public Player getCurrentPlayer();
	
	// Get statistics about players
	public Statistics[] getStatistics();
	
	// Get playerLocations
	public HashMap<Player, Integer[]> getPlayerLocations();
}